#ifndef GENERATION_H
#define GENERATION_H

#include <stdint.h>
#include <stdbool.h>
#include "grouping.h"

// 模板生成选项
typedef struct {
    bool merge_variables;  // 是否合并变量
    bool update_existing;  // 是否更新现有模板
} GenerationOptions;

// 初始化模板生成选项
GenerationOptions generation_options_default();

// 根据LCS结果生成新模板
char* generate_template_from_lcs(const char** tokens, uint32_t token_count, 
                                const char** template_tokens, uint32_t template_token_count);

// 更新现有模板
bool update_existing_template(LogTemplate* template, const char** tokens, uint32_t token_count);

// 添加新模板到分组
bool add_new_template_to_group(TemplateGroup* group, const char* template_str);

// 处理模板匹配和生成
int process_template_generation(GroupManager* gm, int group_id, 
                                const char** tokens, uint32_t token_count,
                                GenerationOptions options);

#endif // GENERATION_H